Measurement and test instruments such as oscilloscopes, network analyzers, mass spectrometers, spectrum analyzers, and so on, are often designed to include a controller and one or more separate hardware assemblies. Each hardware assembly can include one or more devices that function as input/output (I/O) devices to the controller. Each separate hardware assembly may consist, for example, of a portion or all of a single printed circuit board.
Typically, instrument control software running within the controller is used by the controller to access the devices on the separate hardware assemblies through device drivers within the operating system in use by the controller. For example, device drivers within the operating system of the controller are used to interact with the devices.
In order to allow flexibility of the instrument designers, the controller may utilize some automated configuration that allows the controller to recognize which devices are included within the instrument, and then to configure input/output capability of the controller accordingly. For example, during configuration, the instrument control software may be flexible enough to identify the various assemblies installed within the instrument and, for supported assemblies, create hardware control objects within the instrument control software to interact with the device drivers and, thereby, the assembly's devices. If an identified device is supported by the instrument control software, hardware control objects within the instrument control software are activated and configured that allow the instrument control software to interact with device drivers for the device.
In order to identify assemblies and perform necessary hardware control object creation and configuration, the instrument control software uses information about the assembly and device configuration. Typically such information is encoded within modules that are compiled into the instrument control software. Because the information about device configuration is explicitly encoded within the instrument control software, changes to a device may require changes and perhaps recompilation of the instrument control software before a hardware designer can use the instrument control software to test changes made to the device.